﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//1.共用体(联合体)，union共用体名称 {成员列表}共用体变量名；
union vars
{
	double a;//8
	float b;
	int c;
	short d;
	char e;
	char arr[12];//12
}var;

//main130：共用体联合体结构体
int main130()
{
	//3.共用体不是内存对齐，而是共用一个类型最长的变量char arr[12]，但由于double a为8个，则var的内存就是8*2=16了。
	printf("2.输出共用体var的内存大小：%d\n", sizeof(var));//8-->16
	var.a = 100;
	//printf("4.输出共用体var的变量a的值：%f\n", var.a);//100.000000
	var.b = 3.14;
	//printf("4.输出共用体var的变量a的值：%f\n", var.a);//100.000000-->100.000015
	//printf("5.输出共用体var的变量b的值：%f\n", var.b);//3.140000
	var.c = 66;
	printf("4.输出共用体var的变量a的值：%f\n", var.a);//100.000000-->100.000015-->100.000000
	printf("5.输出共用体var的变量b的值：%f\n", var.b);//3.140000-->0.000000
	//7.共用体只有在最后一次被赋值的时候，才是准确的；
	printf("6.输出共用体var的变量c的值：%d\n", var.c);//66

	system("pause");
	return EXIT_SUCCESS;
}